/**
 * 全局常量定义模块
 * 
 * 提供系统使用的全局常量定义
 * 主要包含:
 * - 存储键名定义
 * - 角色类型枚举
 * - 通用消息文本
 * - 主题类型定义
 */

/**
 * 存储键名定义
 * 用于本地存储(localStorage)的键名常量
 */
export interface StorageKeysType {
  TOKEN: string;
  USER_INFO: string;
  USER_RIGHTS: string;
  PERMISSIONS_VERSION: string;
  PERMISSIONS?: string;
  SETTINGS: string;
  THEME: string;
}

export const STORAGE_KEYS: StorageKeysType = {
  TOKEN: 'token',
  USER_INFO: 'userInfo',
  USER_RIGHTS: 'user_rights',
  PERMISSIONS_VERSION: 'permissions_version',
  PERMISSIONS: 'permissions',
  SETTINGS: 'settings',
  THEME: 'theme'
};

/**
 * 角色类型枚举
 * 定义系统中的角色类型
 */
export interface RoleTypesType {
  SUPER_ADMIN: number;
  ADMIN: number;
  EDITOR: number;
}

export const ROLE_TYPES: RoleTypesType = {
  SUPER_ADMIN: 1,  // 超级管理员
  ADMIN: 2,        // 区域管理员
  EDITOR: 3        // 编辑
};

/**
 * 主题类型定义
 * 系统支持的主题模式
 */
export interface ThemesType {
  LIGHT: string;
  DARK: string;
}

export const THEMES: ThemesType = {
  LIGHT: 'light',  // 亮色模式
  DARK: 'dark'     // 暗色模式
};

/**
 * 通用消息
 * 系统提示消息文本
 */
export interface MessagesType {
  AUTH: {
    LOGIN_SUCCESS: string;
    LOGIN_FAILURE: string;
    LOGOUT_SUCCESS: string;
    SESSION_EXPIRED: string;
    PERMISSION_DENIED: string;
  };
  OPERATION: {
    SUCCESS: string;
    FAILURE: string;
  };
}

export const MESSAGES: MessagesType = {
  AUTH: {
    LOGIN_SUCCESS: '登录成功',
    LOGIN_FAILURE: '登录失败',
    LOGOUT_SUCCESS: '安全退出登录',
    SESSION_EXPIRED: '登录已过期，请重新登录',
    PERMISSION_DENIED: '您没有权限执行此操作'
  },
  OPERATION: {
    SUCCESS: '操作成功',
    FAILURE: '操作失败' 
  }
};

export default {
  STORAGE_KEYS,
  ROLE_TYPES,
  THEMES,
  MESSAGES
};
